//ybzuo
//2010.03
//UI Compote Interface
#pragma once
#include <string>
class i_UIelement;
class i_UIlogic;
class ILTMessage_Read;
class i_UIcompote
{
	public:
		//position
		virtual	void set_position(float _x,float _y)=0;
		virtual	void set_x(float _x)=0;
		virtual	void set_y(float _y)=0;
		virtual	float get_x()const	 =0;
		virtual float get_y()const =0;
		//z-buffers
		virtual void set_zbuffer(float _z)=0;
		virtual float get_zbuffer()const=0;
		//size
		virtual void set_width(float _w)=0;
		virtual void set_height(float _h)=0;
		virtual void set_size(float _w,float _h)=0;
		virtual float get_width()const =0;
		virtual float get_height()const =0;
		virtual void scale(float _widthS,float _heightS)=0;
		virtual float get_scale_x()const=0;
		virtual float get_scale_y()const=0;

		//add element;
		virtual bool add_element(std::string _name,i_UIelement* _element)=0;
		//remove element
		virtual bool remove_element(std::string _name)=0;
		//add effect
		virtual bool add_logic(i_UIlogic* _logic)=0;
		//remove effect
		//virtual bool remove_effect()
		//render
		virtual void render()=0;
		//update
		virtual void update()=0;
		//if active
		virtual bool active()=0;
		//set active
		virtual void  enable_active(bool b)=0;

		virtual void set_windos_size(int _w,int _h)=0;

		//deal message
		virtual void on_message(ILTMessage_Read* _msg)=0;
		//destory
		virtual ~i_UIcompote(){}

	

	private:




};